# Copyright 2023 Iguazio
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Change alert activation PK

Revision ID: 12d8000e609b
Revises: d579650595c3
Create Date: 2024-11-13 13:45:08.512249

"""

from alembic import op

# revision identifiers, used by Alembic.
revision = "12d8000e609b"
down_revision = "650f0ce2da6f"
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint("_alert_activation_uc", "alert_activations", type_="primary")
    op.create_primary_key(
        "_alert_activation_uc", "alert_activations", ["id", "activation_time"]
    )
    # Only add AUTO_INCREMENT if not using SQLite
    conn = op.get_bind()
    if conn.dialect.name != "sqlite":
        op.execute("""
            ALTER TABLE alert_activations
            MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT
        """)

    # ### end Alembic commands ###


def downgrade():
    # Revert AUTO_INCREMENT setting only if not SQLite
    conn = op.get_bind()
    if conn.dialect.name != "sqlite":
        op.execute("""
                    ALTER TABLE alert_activations
                    MODIFY COLUMN id INT NOT NULL
                """)

    op.drop_constraint("_alert_activation_uc", "alert_activations", type_="primary")
    op.create_primary_key(
        "_alert_activation_uc", "alert_activations", ["activation_time", "id"]
    )
    # ### end Alembic commands ###
